<?php
class HabilitacionModel extends ModelBase
{
	public function documentacion_vencida($array)
	{
		include("config.php");
		
		if(date("d") == 15)
		{
			$tipo_aviso = new Tipo_aviso();
			$tipo_aviso->add_filter("id","=",1);
			$tipo_aviso->load();
			
			$hoy = date("Y-m-d");
			$dias = $tipo_aviso->get_data("cant_dias");
			$calculo = strtotime("$hoy -$dias days");
			$antes = date("Y-m-d", $calculo);
			$este_mes = date("Y")."-".date("m")."-01";
			
			// AVISO PREVIO DOCUMENTACION MENSUAL  / RIESGO - MONOTRIBUTO / AUTONOMO - VEHICULAR
			$sql = " delete from gc_doc_falta_tmp ";
			$sql .= " where session_id = '".$array["session_id"]."'";
			$idsql_doc = consulta($sql);
			
			$sql = " insert into gc_doc_falta_tmp (id_documento, id_empresa, session_id)";
			$sql .= " select d.id id_documento, ed.id_empresa id_empresa, '".$array["session_id"]."'";
			$sql .= " from gc_empresa_documento ed, gc_documento d, gc_tipo_documento td, gc_empresa e ";
		  	$sql .= " where ed.fecha_vencimiento < '".$antes."'";
			$sql .= " and ed.fecha_vencimiento >= '".$este_mes."'";
			$sql .= " and ed.id_documento = d.id ";
			$sql .= " and d.id_tipo_documento = td.id ";
			$sql .= " and ed.id_empresa = e.id ";
			$sql .= " and d.prioridad = 'R' "; 
			$sql .= " and ed.vigente = 'S'";
			$sql .= " and e.vigente = 'S'";
			//$where .= " and ed.fecha_recepcion = (select MAX(ed1.fecha_recepcion) from gc_empresa_documento ed1 where ed1.vigente = 'S' and ed1.id_empresa = ed.id_empresa and ed1.id_documento = ed.id_documento ) ";
			consulta($sql);
		
			$hoy = date("Y")."-".date("m")."-01";
			$mes = 1;
			$calculo = strtotime("$hoy +$mes months");
			$despues = date("Y-m-d", $calculo);
					
			$sql = " insert into gc_aviso ( id_empresa, fecha, id_tipo_aviso , id_estado_aviso )";
			$sql .= " select tmp.id_empresa, '".date("Y-m-d")."' as fecha, 1 as tipo, 1 as estado ";
			$sql .= " from gc_doc_falta_tmp tmp  ";
			$sql .= " where NOT EXISTS (select * from gc_aviso aux ";
			$sql .= " where aux.id_empresa = tmp.id_empresa ";
			$sql .= " and aux.fecha >= '".$hoy."'";
			$sql .= " and aux.fecha < '".$despues."'";
			$sql .= " and aux.id_tipo_aviso = 1 ";
			$sql .= " and aux.id_estado_aviso = 1 ";
			$sql .= ") "; 
			$sql .= " and tmp.session_id = '".$array["session_id"]."'";
			$sql .= " group by id_empresa , fecha , tipo, estado "; 
			//echo("<br>sql: ".$sql);
			consulta($sql);	
			
			$sql = " insert into gc_documento_aviso ( id_documento, id_aviso )";
			$sql .= " select tmp.id_documento, a.id";
			$sql .= " from gc_doc_falta_tmp tmp, gc_aviso a  ";
			$sql .= " where tmp.id_empresa = a.id_empresa ";
			$sql .= " and a.fecha >= '".$hoy."'";
			$sql .= " and a.fecha < '".$despues."'";
			$sql .= " and tmp.session_id = '".$array["session_id"]."'";
			$sql .= " and not exists (select * gc_documento_aviso aux where aux.id_documento = tmp.id_documento and aux.id_aviso = a.id) ";
			consulta($sql);	
			// FIN AVISO PREVIO
			
			
			// AVISO DIA DOCUMENTACION MENSUAL  / RIESGO - MONOTRIBUTO / AUTONOMO - VEHICULAR
			$sql = " delete from gc_doc_falta_tmp ";
			$sql .= " where session_id = '".$array["session_id"]."'";
			$idsql_doc = consulta($sql);
			
			$sql = " insert into gc_doc_falta_tmp (id_documento, id_empresa, session_id)";
			$sql .= " select d.id id_documento, ed.id_empresa id_empresa ,'".$array["session_id"]."'";
			$sql .= " fromo gc_empresa_documento ed, gc_documento d, gc_tipo_documento td, gc_empresa e ";
		  	$sql .= " where ed.fecha_vencimiento <= '".$hoy."'";
			$sql .= " and ed.fecha_vencimiento >= '".$este_mes."'";
			$sql .= " and ed.id_documento = d.id ";
			$sql .= " and d.id_tipo_documento = td.id ";
			$sql .= " and ed.id_empresa = e.id ";
			$sql .= " and d.prioridad = 'R' "; 
			$sql .= " and ed.vigente = 'S'";
			$sql .= " and e.vigente = 'S'";
			//$where .= " and ed.fecha_recepcion = (select MAX(ed1.fecha_recepcion) from gc_empresa_documento ed1 where ed1.vigente = 'S' and ed1.id_empresa = ed.id_empresa and ed1.id_documento = ed.id_documento ) ";
			consulta($sql);
		
			$hoy = date("Y")."-".date("m")."-01";
			$mes = 1;
			$calculo = strtotime("$hoy +$mes months");
			$despues = date("Y-m-d", $calculo);
					
			$sql = " insert into gc_aviso ( id_empresa, fecha, id_tipo_aviso , id_estado_aviso )";
			$sql .= " select tmp.id_empresa, '".date("Y-m-d")."' as fecha, 2 as tipo, 1 as estado ";
			$sql .= " from gc_doc_falta_tmp tmp  ";
			$sql .= " where NOT EXISTS (select * from gc_aviso aux ";
			$sql .= " where aux.id_empresa = tmp.id_empresa ";
			$sql .= " and aux.fecha >= '".$hoy."'";
			$sql .= " and aux.fecha < '".$despues."'";
			$sql .= " and aux.id_tipo_aviso = 2 ";
			$sql .= " and aux.id_estado_aviso = 1 ";
			$sql .= ") "; 
			$sql .= " and tmp.session_id = '".$array["session_id"]."'";
			$sql .= " group by id_empresa , fecha , tipo, estado "; 
			//echo("<br>sql: ".$sql);
			consulta($sql);	
			
			$sql = " insert into gc_documento_aviso ( id_documento, id_aviso )";
			$sql .= " select tmp.id_documento, a.id";
			$sql .= " from gc_doc_falta_tmp tmp, gc_aviso a  ";
			$sql .= " where tmp.id_empresa = a.id_empresa ";
			$sql .= " and a.fecha >= '".$hoy."'";
			$sql .= " and a.fecha < '".$despues."'";
			$sql .= " and tmp.session_id = '".$array["session_id"]."'";
			$sql .= " and not exists (select * gc_documento_aviso aux where aux.id_documento = tmp.id_documento and aux.id_aviso = a.id) ";
			consulta($sql);	
			// FIN AVISO DIA
			
			
			// AVISO FALTANTE DOCUMENTACION MENSUAL  / RIESGO - MONOTRIBUTO / AUTONOMO - VEHICULAR
			$sql = " select e.id id_empresa ";
			$sql .= " from gc_empresa e ";
			$sql .= " where e.vigente = 'S'";
				
			$idsql = consulta($sql);		
			
			$hoy = date("Y")."-".date("m")."-01";
			$mes = 1;
			$calculo = strtotime("$hoy -$mes months");
			$antes = date("Y-m-d", $calculo);
			
			$sql = " delete from gc_doc_falta_tmp ";
			$sql .= " where session_id = '".$array["session_id"]."'";
			$idsql_doc = consulta($sql);
				
			while($rs=mysql_fetch_array($idsql))
			{
				$sql = " insert into gc_doc_falta_tmp (id_documento, id_empresa, session_id)";
				$sql .= " select d.id id_documento, ".$rs["id_empresa"].", '".$array["session_id"]."'";
				$sql .= " from gc_documento d ";
				$sql .= " where NOT EXISTS (select * from gc_empresa_documento ed ";
				$sql .= " where ed.id_documento = d.id and ed.id_empresa = ".$rs["id_empresa"];
				$sql .= " and ed.fecha_recepcion >= '".$antes."'";
				$sql .= ") "; 
				$sql .= " and d.vigente = 'S'";
				$sql .= " and d.prioridad = 'R'";

				$idsql_doc = consulta($sql);		
			}
			$hoy = date("Y")."-".date("m")."-01";
			$mes = 1;
			$calculo = strtotime("$hoy +$mes months");
			$despues = date("Y-m-d", $calculo);
					
			$sql = " insert into gc_aviso ( id_empresa, fecha, id_tipo_aviso , id_estado_aviso )";
			$sql .= " select tmp.id_empresa, '".date("Y-m-d")."' as fecha, 3 as tipo, 1 as estado ";
			$sql .= " from gc_doc_falta_tmp tmp  ";
			$sql .= " where NOT EXISTS (select * from gc_aviso aux ";
			$sql .= " where aux.id_empresa = tmp.id_empresa ";
			$sql .= " and aux.fecha >= '".$hoy."'";
			$sql .= " and aux.fecha < '".$despues."'";
			$sql .= " and aux.id_tipo_aviso = 3 ";
			$sql .= " and aux.id_estado_aviso = 1 ";
			$sql .= ") "; 
			$sql .= " and tmp.session_id = '".$array["session_id"]."'";
			$sql .= " group by id_empresa , fecha , tipo, estado "; 
			//echo("<br>sql: ".$sql);
			$idsql = consulta($sql);	
			
			$sql = " insert into gc_documento_aviso ( id_documento, id_aviso )";
			$sql .= " select tmp.id_documento, a.id";
			$sql .= " from gc_doc_falta_tmp tmp, gc_aviso a  ";
			$sql .= " where tmp.id_empresa = a.id_empresa ";
			$sql .= " and a.fecha >= '".$hoy."'";
			$sql .= " and a.fecha < '".$despues."'";
			$sql .= " and tmp.session_id = '".$array["session_id"]."'";
			$sql .= " and not exists (select * gc_documento_aviso aux where aux.id_documento = tmp.id_documento and aux.id_aviso = a.id) ";
			//echo("<br>sql: ".$sql);
			$idsql = consulta($sql);
			// FIN AVISO FALTANTE
		} // fin if dia 25
	}
	
	public function inhabilitar_empresa($array)
	{
		$aviso = new Aviso();
		$aviso->add_filter("id","=",$array["id"]);
		$aviso->load();
		
		$sql = "INSERT INTO gc_contratista_audi SELECT *, '".$array["idusuario"]."', '".date("Y-m-d H:i:s")."', 'U' FROM gc_contratista WHERE id_empresa = ".$aviso->get_data("id_empresa")." and vigente = 'S' ";
		consulta($sql);
		
		$sql = " UPDATE gc_contratista SET habilitado = 'N' WHERE id_empresa = ".$aviso->get_data("id_empresa")." and vigente = 'S' ";
		consulta($sql);
		
		$aviso->set_data("id_estado_aviso",2);
		$aviso->set_data("fecha_aviso",date("Y-m-d"));
		$aviso->save();
	}
	
	
	public function habilitacion_vehiculos()
	{
		$sql = " SELECT v.id FROM gc_vehiculo v WHERE vigente = 'S' ";
		$idsql = consulta($sql);
		
		while($rs=mysql_fetch_array($idsql))
		{
			
			$dato = new Vehiculo();
			$dato->add_filter("id","=",$rs["id"]);
			$dato->load();
			
			$fecha_hoy = strtotime(date("Y-m-d"));
			
			$habilitado = "N";
			if($dato->get_data("itv") == "S")		
			{
				$fecha_otra = strtotime($dato->get_data("itv_fec_venc"));
				if($fecha_hoy <= $fecha_otra)
				{
					$habilitado = "S";
				}
			}
			
			if($dato->get_data("vtv") == "S")		
			{
				$fecha_otra = strtotime($dato->get_data("vtv_fec_venc"));
				if($fecha_hoy <= $fecha_otra)
				{
					$habilitado = "S";
				}
			}
			
			if($dato->get_data("tuv") == "S")		
			{
				$fecha_otra = strtotime($dato->get_data("tuv_fec_venc"));
				if($fecha_hoy <= $fecha_otra)
				{
					$habilitado = "S";
				}
			}
			if($dato->get_data("habilitado") <> $habilitado)
			{
				$dato->set_data("habilitado",$habilitado);
				$dato->save();
			}
		}
	}
	
	public function habilitacion_contratistas()
	{
	
		$sql = " SELECT c.id FROM gc_contratista c WHERE c.vigente = 'S' and NOT EXISTS (select * from gc_empresa e where e.id = c.id_empresa and (e.forzado_rrhh = 'S' OR e.forzado_excep = 'S')) ";
		$idsql = consulta($sql);
		
		while($rs=mysql_fetch_array($idsql))
		{
			$dato = new Contratista();
			$dato->add_filter("id","=",$rs["id"]);
			$dato->load();
			
			// habilitacion rh
			$habilitacion_rh = 0;
				// ART
				if(!is_null($dato->get_data("nro_contrato_art")))
				{
					$fecha_hoy = strtotime(date("Y-m-d"));
					$fecha_otra = strtotime($dato->get_data("vto_poliza_art"));
					$fecha_otra_1 = strtotime($dato->get_data("vto_clausula_art"));
					if($fecha_otra > $fecha_hoy)
					{
						if($fecha_otra_1 > $fecha_hoy)
						{	
							$habilitacion_rh = 1;
						}
					}
				}
				// Accidentes Personales
				if($habilitacion_rh == 1)
				{
					$habilitacion_rh = 0;
					if(!is_null($dato->get_data("id_empresa_acc_pers")))
					{
						$fecha_hoy = strtotime(date("Y-m-d"));
						$fecha_otra = strtotime($dato->get_data("vto_poliza_acc_pers"));
						$fecha_otra_1 = strtotime($dato->get_data("vto_pago_poliza_acc_pers"));
						if($fecha_otra > $fecha_hoy)
						{
							if($fecha_otra_1 > $fecha_hoy)
							{	
								$habilitacion_rh = 1;
							}
						}
					}
				}
				// Seguro de Vida
				if($habilitacion_rh == 1)
				{
					$habilitacion_rh = 0;
					if(!is_null($dato->get_data("id_seguro_vida")))
					{
						$fecha_hoy = strtotime(date("Y-m-d"));
						$fecha_otra = strtotime($dato->get_data("vto_poliza_seguro_vida"));
						if($fecha_otra > $fecha_hoy)
						{
								$habilitacion_rh = 1;
						}
					}
				}
			
			// habilitacion csm
			$habilitacion_csm = 0;
			if($dato->get_data("calificacion") <> 1)
			{
				$habilitacion_csm = 1;
			}
			
			// habilitacion servicio medico
			$habilitacion_sm = 0;
			if(!is_null($dato->get_data("id_examen_medico")))
			{
				$fecha_hoy = strtotime(date("Y-m-d"));
				$fecha_otra = $dato->get_data("fecha_presentacion");
				$year = $dato->get_data("vigencia_examen");
				$fecha_otra = strtotime("$fecha_otra +$year years");
				
				if($fecha_otra > $fecha_hoy)
				{
					$habilitacion_sm = 1;
				}
			}
			
			// habilitacion capacitacion
			$habilitacion_c = 0;
			if(!is_null($dato->get_data("id_modulo_capacitacion")))
			{
				$fecha_hoy = strtotime(date("Y-m-d"));
				$fecha_otra = $dato->get_data("fecha_capacitacion");
				$year = $dato->get_data("vigencia_capacitacion");
				$fecha_otra = strtotime("$fecha_otra +$year years");
				
				if($fecha_otra > $fecha_hoy)
				{
					$habilitacion_c = 1;
				}
			}
			
			$suma = $habilitacion_rh + $habilitacion_csm + $habilitacion_c;
			if($suma == 3)
			{
				$dato->set_data("habilitado","S");
			}
			else
			{
				$dato->set_data("habilitado","N");
			}
			$dato->save();
			
		}
	}
}	


?>